package demo7.teht;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.Font;
import java.awt.Graphics;
import java.util.Calendar;
import javax.swing.JApplet;
import javax.swing.JPanel;

/**
 *
 * @author Pasi
 */
public class T4_Kello extends JApplet implements Runnable {
   private Thread saie;
   private Font fontti;
   private Calendar kalenteri;
   private String aika;
   
   @Override
   public void init() {
      fontti = new Font("Verdana", Font.BOLD, 40);
      aika = "";
      saie = null;
      getContentPane().add(new PiirtoPaneeli());
   }

  // aloitetaan uusi säie
   @Override
   public void start() {
     if (saie == null) {
       saie = new Thread(this);
       saie.start();
     }
   }

   // suoritetaan säiettä, piirretään näyttö uudestaan repaint() metodilla
   // -> kutsuu paint() metodia
   // säie nukkuu 50 millisekunttia
   @Override
   public void run() {
     while (true) {
       // kysytään järjestelmästä uudet tiedot
       kalenteri = Calendar.getInstance();
       // selvitetään tunti, minuutti ja sekuntti edellä saaduista tiedoista
       int hour = kalenteri.get(Calendar.HOUR_OF_DAY);
       int min = kalenteri.get(Calendar.MINUTE);
       int sek = kalenteri.get(Calendar.SECOND);
       
       String sHour = (hour < 10)?"0"+hour:hour+"";
       String sMin = (min < 10)?"0"+min:min+"";
       String sSek = (sek < 10)?"0"+sek:sek+"";
       aika = sHour+":"+sMin+":"+sSek;
       
       //aika = kalenteri.get(Calendar.HOUR_OF_DAY)+":"+kalenteri.get(Calendar.MINUTE)+":"+kalenteri.get(Calendar.SECOND);
       // kutsutaan paint()-metodia
       repaint();
       try {
         // nukutaan 1/2 sekunttia = 500 millisekuntia
         saie.sleep(500);
       } catch (InterruptedException e) {
      }
    }
   }

    class PiirtoPaneeli extends JPanel {
        @Override
        public void paintComponent(Graphics g) {
            // piirretään aika näytölle
            g.setFont(fontti);
            g.drawString(aika,50,100);
        }
    }
}
